РусЛат.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 

(******************************************************************************)
(**)                        ОТДЕЛ РусЛат+;
(******************************************************************************)
(* НАЗНАЧЕНИЕ: транслитерация файла, содержащего русские буквы                *)
(******************************************************************************)
ИСПОЛЬЗУЕТ 
  ОС       ИЗ "...\Отделы\Обмен\",
  Знак     ИЗ "...\Отделы\Иное\",
  Параметр ИЗ "...\Отделы\Обмен\",
  Читать   ИЗ "...\Отделы\Обмен\",
  Писать   ИЗ "...\Отделы\Обмен\",
  Вывод    ИЗ "...\Отделы\Обмен\",
  Файл     ИЗ "...\Отделы\Обмен\",
  Перевод  ИЗ "...\Отделы\Иное\";

(******************************************************************************)
ЗАДАЧА Ошибка1(ц-:ЦЕПЬ);
УКАЗ
  Вывод.Цепь(ц);
  Вывод.Цепь("^РусЛат вх.файл вых.файл");
  (* Пояснение: при записи текста в поток (в т.ч. на экран)
   * знак ^ обозначает переход на новую строку и сброс данных *) 
  СТОП(1)
КОН Ошибка1;

(******************************************************************************)
ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ);
УКАЗ
  Вывод.Цепь(ц1);
  Ошибка1(ц2)
КОН Ошибка2;

(******************************************************************************)
ЗАДАЧА Работа(ч:Читать.Поток; п:Писать.Поток);
ПОСТ
  ЗНАКОВ=100; (* можем прочитать за раз ЗНАКОВ из файла *)
ПЕР
  рус:ЦЕПЬ[ЗНАКОВ  ];
  лат:ЦЕПЬ[ЗНАКОВ*2];
УКАЗ
  ПОКА НЕ Читать.Конец(ч) ВЫП
    Читать.Строка(ч,рус);
    Перевод.ВЛат(рус,лат);
    Писать.ЗнакиЦепи(п,лат);
    ЕСЛИ Читать.НачалоСтроки(ч) ТО
      Писать.ЗнакЦепи(п,0DX);
      Писать.ЗнакЦепи(п,0AX)
    КОН
  КОН
КОН Работа;

(******************************************************************************)
ЗАДАЧА Голова();
ПЕР
  ч:Читать.Поток;
  п:Писать.Поток;
  пимя,чимя:Файл.ВПолного;
УКАЗ
  ЕСЛИ Параметр.всего < 2 ТО Ошибка1("Нет имени входного файла") КОН;
  ЕСЛИ Параметр.всего < 3 ТО Ошибка1("Нет имени выходного файла") КОН;
  Параметр.Текст(1,чимя);
  Параметр.Текст(2,пимя);
  ч:=Читать.Открыть(чимя);
  п:=Писать.Открыть(пимя);
  ЕСЛИ ч=ПУСТО ТО Ошибка2(чимя," не открывается") КОН;
  ЕСЛИ п=ПУСТО ТО Ошибка2(пимя," не открывается") КОН;
  ч.видЗнаков:=Читать.знУни;
  п.видЗнаков:=Писать.знУни;
  Работа(ч,п);
  Читать.Закрыть(ч);
  Писать.Закрыть(п)
КОН Голова;

УКАЗ
  Голова
КОН РусЛат.




Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
 email
 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы